package com.ruoyi.delivery.service;

import com.ruoyi.delivery.domain.DelCarrierInfo;

import java.util.List;

/**
 * 物流商 服务层
 *
 * @author hu
 */
public interface IDelCarrierService {

    /**
     * 分页查询物流商信息
     *
     * @param carrierNo 物流商编号
     * @param carrierName 物流商名字
     * @param carrierType 物流商类型
     * @param carrierAddress 物流商地址
     * @param contactPhone 物流商联系电话
     * @param contactPerson 物流商负责人
     * @param contactEmail 负责人邮箱
     * @param activeStatus 物流商状态
     * @param offset 分页偏移量
     * @param pageSize 分页大小
     * @return 物流商信息列表
     */
    List<DelCarrierInfo> getCarrierInfoList(String carrierNo, String carrierName, Integer carrierType, String carrierAddress,
                               String contactPhone, String contactPerson, String contactEmail, Integer activeStatus,
                               int offset, int pageSize);

    /**
     * 获取物流商信息总记录数
     * @param carrierNo 物流商编号
     * @param carrierName 物流商名字
     * @param carrierType 物流商类型
     * @param carrierAddress 物流商地址
     * @param contactPhone 物流商联系电话
     * @param contactPerson 物流商负责人
     * @param contactEmail 负责人邮箱
     * @param activeStatus 物流商状态
     * @return 总记录数
     */
    int getCarrierInfoCount(String carrierNo, String carrierName, Integer carrierType, String carrierAddress,
                            String contactPhone, String contactPerson, String contactEmail, Integer activeStatus);

    /**
     * 更新物流商信息
     * @param carrierInfo 物流商信息对象
     * @return 更新影响的行数
     */
    int updateCarrierInfo(DelCarrierInfo carrierInfo);
    /**
     * 删除单个物流商
     * @param carrierNo 物流商编号
     * @return 删除影响的行数
     */
    int deleteCarrierInfo(String carrierNo);

    /**
     * 批量删除物流商
     * @param carrierNos 物流商编号集合
     * @return 删除影响的行数
     */
    int deleteCarriers(List<String> carrierNos);

    /**
     * 新增物流商信息
     * @param carrierInfo 物流商信息对象
     * @return 插入影响的行数
     */
    int insertCarrierInfo(DelCarrierInfo carrierInfo);

    /**
     * 获取司机信息
     *
     * @param carrierNo 司机编号
     * @return 司机信息
     */
    DelCarrierInfo getCarrierByCarrierNo(String carrierNo);

}
